// pages/me/me.js
Page({

    /**
     * 页面的初始数据
     */
    data: {
        userInfo: {
            avatarUrl: '',
            nickName: '点击登录'
        },
        logined: false,   // 是否已经登录
    },

    /** 点击头像，选择图片 */
    tapAvatar(){
        if(!this.data.logined) return;
        // 选择头像图片
        wx.chooseMedia({
          count: 1, 
          mediaType: ['image'],
          success: (res)=>{
            console.log('选择了头像', res)
            let path = res.tempFiles[0].tempFilePath
            // 将path，更新到 data.userInfo.avatarUrl
            let userInfo = this.data.userInfo
            userInfo.avatarUrl = path
            this.setData({ userInfo })

            // 上传图片至云存储
            this.uploadAvatar(path)
          }
        })
    },

    /** 上传头像至云存储空间 */
    uploadAvatar(path){
        // 本地文件路径：path:  wxfile://xxx/aa/bb/cccc.jpg
        // 保存到云存储时定义的文件路径：cPath   随机生成
        let houzhui = path.substring(
                path.lastIndexOf('.'))
        let cPath = 'img_'+Math.random()+houzhui
        wx.cloud.uploadFile({
            filePath: path,
            cloudPath: cPath,
            success: (res)=>{
                console.log('上传文件', res)
                let fileID = res.fileID   // 返回的图片访问链接
                // 更新fileID到数据库avatarUrl
                this.updateUserAvatar(fileID)
            }
        })
    },

    /** 将fileID更新掉当前用户的avatarUrl */
    updateUserAvatar(fileID){
        let db = wx.cloud.database()
        let _id = this.data.userInfo._id
        db.collection('users').doc(_id).update({
            data: { 
                avatarUrl: fileID
            }  
        }).then(res=>{
            console.log('修改数据库头像路径', res)
            wx.showToast({
              title: '头像修改完成'
            })
        }).catch(err=>{
            console.log(err)
        })
    },

    tapLogin() { // 点击登录
        if( this.data.logined ){ return; }
        wx.getUserProfile({  
            desc: '获取用户微信数据，维护会员权益',
            success: (res) => {
                console.log('获取微信数据', res)
                this.setData({
                    logined : true,
                    userInfo : res.userInfo
                })
                // 查询云数据库users集合，是否含有当前用户的数据
                this.queryCurrentUser()
            }
        })
    },

    /** 查询当前用户是否存在于自己家数据库中：云数据库users集合 */
    queryCurrentUser(){
        let db = wx.cloud.database()
        db.collection('users').get().then(res=>{
            console.log('查询当前用户', res)
            // 判断是否查到当前用户
            if(res.data.length == 0){  // 没查到，执行注册
                this.regist()
            }else {  // 查到了，获取最新数据，更新userInfo
                this.setData({
                    userInfo: res.data[0]
                })  
            } 
        }) 
    }, 
    
    /** 注册，将this.data.userInfo添加到users集合中 */
    regist(){
        let db = wx.cloud.database()
        db.collection('users').add({
            data: this.data.userInfo,
            success: (res)=>{
                console.log('注册成功', res)
            }
        })
    },

    // 捕获到my-button被双击后触发，并执行该方法
    doubleTap() {
        console.log(' 双击么么哒！！ ')
    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad(options) {

    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady() {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow() {

    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide() {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload() {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh() {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom() {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage() {

    }
})